package day21;

/**
 * 简单工厂模式
 * 1. 创建接口
 * 2. 分别创建子类，并实现接口
 * 3. 创建工厂类，创建静态方法，根据传递的对象，返回对应的实例对象
 * @author: yyfei  
 * @email:  yyfei123@qq.com
 */
public class SimpleFactoryModle {
	public static void main(String[] args) {
		Car aCar=new CarFactory().factory("宝马");
		aCar.run();
		
		Car bCar=new CarFactory().factory("比亚迪");
		bCar.run();
	}
}

interface Car{
   public abstract void run();
}

class BaMa implements Car {
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("宝马车在跑动");
	}
}

class Byd implements Car{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("比亚迪在启动");
	}
}

/**
 * 简单工厂： 增加一个子类对象，工厂类就会增加一个判断，稍不注意会改动元代码
 * @author: yyfei  
 * @email:  yyfei123@qq.com
 */
class CarFactory{
	public static Car factory(String str) {
		if ("宝马".equals(str)) {
			return new BaMa();
		} else if ("比亚迪".equals(str)) {
			return new Byd();
		}
		return null;
	}
}






